ConstantValue 属性

ConstantValue 属性的作用是通知虚拟机自动为静态变量赋值,值域被static关键字修饰的变量(类变量)

才可以使用这项属性。

ConstantValue的属性值只限于基本类型和String

关于类变量有两种赋值的方式,在类构造器<clinit>()方法中或者使用ConstantValue属性。

目前Oracle实现的Javac编译器的选择是,如果同时使用finalstatic来修饰一个变量(其实已经是常量了),

并且这个变量的数据类型是基本类型或java.lang.String,将会生成ConstantValue属性来进行初始化。

如果没有被final修饰或并非基本类型及字符串,则将会在<clinit>()方法中进行初始化。